var path = require("path")

module.exports = {
    mode: "production",
    // entry: "./src/index.js"   // 这种写法是不规范的，默认会转换成下面的配置成一个对象的写法

    entry: {  // entry的每一项都是一个chunk，默认只有一个chunk，默认就是下面第一行的配置
        main: "./src/index.js", //属性名：chunk的名称， 属性值：入口模块（启动模块）
        a: ["./src/a.js", "./src/index.js"] //启动模块有两个（不常见），一个chunk有两个启动模块，最终还是会生产一个文件，而在这个文件中会按顺序运行这两个启动模块的代码
    },
    output: {
        path: path.resolve(__dirname, "target"), //必须配置一个绝对路径，表示资源放置的文件夹，默认是dist，默认的也是绝对路径
        // 在这里，最好不要直接写一个绝对路径的字符串，因为不同的操作系统的路径书写格式会有差异，而且工程若移动会产生错误
        // path: "g:\\asda\\sdad\\"
        filename: "[name][chunkhash:5].js" //配置的合并的js文件的规则
        // filename配置的是资源列表的js文件的名字，而不是.map文件（map的文件名默认会和js文件的名字一样），目前只接触到这两个文件，.map文件也可以配置，但是谁会没事闲的去配置它
        // filename配置的是js文件名的规则，即使有多个chunk，filename也只配置一次，这时必须使用动态的文件名
        // filename: "bundle.js", // 直接配置一个静态的文件名，这种情况只适合一个chunk的情况，否则会报错
        // filename: "scripts/bundle.js" // 放置在子文夹下
        // filename: "sada[name]sdas.js" // 动态规则的文件名
        // filename: "[name]-[hash].js"  // 根据总的hash
    },
    devtool: "source-map"
}




